#include <iostream>
#include <string>
#include <fstream>
#include "bundle.h"

using namespace std;
int main(int argc,char* argv[])
{
    //压缩文件

    // cout<<"argv[1]是原始文件路径名称\n";
    // cout<<"argv[2]是压缩包名称\n";
    // if(argc<3)return -1;

    // string ifilename = argv[1];
    // string ofilename = argv[2];

    // ifstream ifs;
    // ifs.open(ifilename,ios::binary);
    // ifs.seekg(0,ios::end);//跳转读写位置到末尾
    // size_t fsize = ifs.tellg();//获取末尾偏移量
    // ifs.seekg(0,ios::beg);
    // string body;
    // body.resize(fsize);
    // ifs.read(&body[0],fsize);

    // string packed = bundle::pack(bundle::LZIP,body);

    // ofstream ofs;
    // ofs.open(ofilename,ios::binary);
    // ofs.write(&packed[0],packed.size());
    
    // ifs.close();
    // ofs.close();



    //解压文件
    if(argc<3)
    {
        cout<<"argv[1]是压缩包名称"<<endl;
        cout<<"argv[2]是解压后的文件名称"<<endl;
        return -1;
    }
    string ifilename = argv[1];
    string ofilename = argv[2];

    ifstream ifs;
    ifs.open(ifilename,ios::binary);
    ifs.seekg(0,ios::end);//跳转读写位置到末尾
    size_t fsize = ifs.tellg();//获取末尾偏移量
    ifs.seekg(0,ios::beg);
    string body;
    body.resize(fsize);
    ifs.read(&body[0],fsize);

    string unpacked = bundle::unpack(body);

    ofstream ofs;
    ofs.open(ofilename,ios::binary);
    ofs.write(&unpacked[0],unpacked.size());
    
    ifs.close();
    ofs.close();
    return 0;
}